#include "widget.h"
#include "ui_widget.h"
#include "mylabel.h"
#include <QLabel>
#include <QString>


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    //一般通过代码来构建界面的时候
    //通常会将构建界面的代码放到Widget/MainWindow的构造
    //函数中
    ui->setupUi(this);
    //更推荐在堆上创建的方式

    //QLabel* label = new QLabel(this);//参数的含义给当前这个label对象

    //指定一个"父对象"(对象树)
    //之所以能够把对象释放掉，主要是将这个对象刮到了对象树上
    //通过这个树形结构，就把界面上要显示的控件对象都组织起来了
    //使用对象树，把这些内容组织起来，最主要就是能够在
    //合适的时机(窗口关闭/销毁)把这些对象统一释放
    //把这个对象的生命周期交给Qt的对象树同意处理
    //label->setText("hello world");//设置控件中要显示的文本是啥

    //    MyLabel* label=new MyLabel(this);
    //    label->setText("hello world");

    pushbutton = new QPushButton(this);
    pushbutton->setText("hello world");
    pushbutton->move(200,300);//可以用move来设置按钮的位置
    connect(pushbutton,&QPushButton::clicked,this,&Widget::handleClick);
    //第一个参数:从界面文件中访问到了这个按钮，第二个参数:传的是一个函数指针(按钮被点击触发的信号)
    //第三、四个参数:关联到哪个参数的哪个槽函数
}

Widget::~Widget()
{
    delete ui;
}

void Widget::handleClick()
{
    //当按钮被点击之后，将文本进行切换
    if(pushbutton->text() == QString("hello world"))
    {
        pushbutton->setText("hello qt");
    }
    else
    {
        pushbutton->setText("hello world");
    }
}

